package org.lmind.example.common.api;

/**
 * <h1>消息通知服务</h1></br>
 * <p>某些业务完成了操作后,需要将操作结果以某种形式通知给用户或其他的消息接受者
 * 可能是电子邮件、短信、或其他信息形式</p>
 * <p>标准的消息发送器可以参考{@link TransmitterNames}</p>
 * @author mian.liu
 *
 */
public interface NotifyService {
	
	/**
	 * 使用默认的消息发送器发送一个消息
	 * @param message 消息内容
	 * @param to 消息接收者
	 */
	void notifyMessage(Object message, Object... to);
	
	/**
	 * 使用消息发送器发送一个消息
	 * @param message 消息内容
	 * @param transmitter 消息发送器
	 * @param to 消息接收者
	 */
	void notifyMessage(Object message, String transmitter, Object... to);
	
	/**
	 * 发送一个基于模板的消息
	 * @param template 模板名称
	 * @param message 消息内容
	 * @param transmitter 消息发送器
	 * @param to 消息接收者
	 */
	void notifyMessage(String template, Object message, String transmitter, Object... to);
}
